package main

import "fmt"

func main() {
	// 数组的初始化
	arr1 := [3]int{1, 6, 9}
	fmt.Println(arr1)
	// 推断
	arr2 := [...]int{3, 7, 9, 104, 23}
	fmt.Println(arr2)
	// 预留
	arr3 := [5]int{2, 6, 7}
	fmt.Println(arr3)
	// 索引存值
	arr4 := [6]int{0: 6, 4: 7}
	fmt.Println(arr4)
	// 二维数组的定义
	arr := [...][2]int{
		[2]int{1, 2},
		[2]int{1, 2},
		[2]int{1, 2},
		[2]int{1, 2},
	}
	// 二维数组的遍历
	for _, value := range arr {
		fmt.Println(value)
		for _, item := range value {
			fmt.Println(item)
		}
	}

	// 数组是值类型

	// 切片是引用类型

	arr6 := [...]int{1, 6, 8}
	// 切片
	arr6p := arr6[1:2]
	fmt.Println(arr6p)
	// 更改切片的值
	arr7 := append(arr6p, 5, 6)
	arr6p[0] = 2
	fmt.Println(arr6)
	fmt.Println(arr6p)
	fmt.Println(arr7)

	//fmt.Println(arr)
}
